/**
* Copyright 2016年12月8日 
* All Rights Reserved.
* 文件名称: QuestionnaireService.java  
* 初始作者：g.huangshg
* 初始版本：V1.0.0   
* 完成日期： 2016年2月8日 
*/
package sys.service.Impl;
import com.util.BeanUtil;
import com.util.PagedResult;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import sys.mapper.*;
import sys.model.*;
import sys.service.QuestionnaireService;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/********************************************************
 * 类名：QuestionServiceImpls
 * 功能：
 * 作者：g.huangshg 2016年12月8日
 * 修改记录：
 *          日期                 修改人                 修改说明
 ********************************************************/
@Service

public class QuestionnaireServiceImpl implements QuestionnaireService {
	@Autowired
	QuestionnaireMapper questionnaireMapper;
	@Autowired
	QuestionMapper questionMapper;
	@Autowired
	AnserKeyMapper anserKeyMapper;
	@Autowired
	AnserMapper anserMapper;

	/**
	 * 创建问卷
	 * @param q
	 * @return
	 * @throws SQLException
	 */
	public int add(Questionnaire q) throws SQLException{
		//新建
		if(q.getId()==null) {
		int i=	questionnaireMapper.insert(q);
			if(i<=0) return 0;
			List<Question> list = q.getQuestions();
			for (Question question : list) {
				question.setQid(q.getId());
			}
			if(list!=null&&!list.isEmpty())
			questionMapper.inserts(list);
		}
		//  修改
		else {
			questionnaireMapper.updateByPrimaryKey(q);
			//删除原来的 题目
			questionMapper.deleteByQid(q.getId());
			List<Question> list = q.getQuestions();
			for (Question question : list) {
				question.setQid(q.getId());
			}
			if(list!=null&&!list.isEmpty())
			questionMapper.inserts(list);
		}
		return q.getId();
	}

	/**
	 *   答案插入
	 * @param a
	 * @return
	 * @throws SQLException
	 */
	public int inserAnserKey(AnserKey a) throws SQLException {
		int i=0;
		i=anserKeyMapper.insert(a);
		if(i>0) {
			List<Anser> list =a.getAnserList();
			for (Anser anser : list) {
				anser.setFid(a.getId());
			}
			if(!list.isEmpty())
		  if(!anserMapper.inserts(list)){  i=0;  }
		}
		return i;
	}
	public Questionnaire selectByname(String name ){
		return questionnaireMapper.selectByname(name);
	}
	/**
	 * 问卷删除
	 * @param id
	 * @return
	 * @throws SQLException
	 */
	public int delete(int id) throws SQLException {
		questionMapper.deleteByQid(id);
		return questionnaireMapper.deleteByPrimaryKey(id);
	}

	@Override
	public int updateQuestionnaireConfig(Questionnaire q) {
		return questionnaireMapper.updateQuestionnaireConfig(q);
	}

	/**
	 * 问卷预览
	 * @param id
	 * @return
	 */
	public Questionnaire selectByPrimaryKey(Integer id) {
		return questionnaireMapper.selectByPrimaryKey(id);
	}

	/**
	 * 分页查询
	 * @param map
	 * @return
	 */
	public PagedResult<Questionnaire> selectView(Map map) {
		PageHelper.startPage((Integer) map.get("page"),(Integer)map.get("rows"));  //分页参数
		return BeanUtil.toPagedResult(questionnaireMapper.selectView(map));
	}

	@Override
	public PagedResult<AnserKey> selectAnserKeyView(Map map) {
		PageHelper.startPage((Integer) map.get("page"),(Integer)map.get("rows"));  //分页参数
		return BeanUtil.toPagedResult(anserKeyMapper.selectView(map));
	}

	@Override
	public AnserKey selectAnserKeyByID(Integer id) {
		return anserKeyMapper.selectByPrimaryKey(id);
	}
	@Override
	public QuestionAnser getAnserBar(Map map) {
		return anserKeyMapper.getAnserBar(map);
	}

	@Override
	public List<Map> selectList(Map map) {
		return questionnaireMapper.selectList(map);
	}
	public List<Questionnaire> selectTitleList(){
		return questionnaireMapper.selectTitleList();
	}

}
